// 交叉类型（intersection types）指的多个类型组成的一个新类型，使用符号&表示。

// 交叉类型A&B表示，任何一个类型必须同时属于A和B，才属于交叉类型A&B，即交叉类型且满足A和B的特征。

namespace A {
    type a = number | string;
    type b = number | boolean;
    type c = a | b;
    let sda: c = true;

    type aa = number | string;
    type bb = number | boolean;
    type cc = aa & bb;

    let data222: cc = 5;

    type Animal = {
        name: string;
    };

    type dog = Animal & { age: number };

    const xiaodog: dog = {
        name: "小黑",
        age: 15,
    };

    interface props {
        name: string;
    }

    type pop = props & { age: number };
}






